package cn.zdsoft.configuration.core.api;

import cn.zdsoft.configuration.core.ConfigContext;
import cn.zdsoft.configuration.core.exceptions.ConfigurationException;

import java.util.Properties;

/**
 * 回调接口
 * Created by wangdongdong on 2018/5/16 9:47.
 */
public interface CallbackAble {

    /**
     * 初始化参数
     * @param context
     * @param properties
     */
    void init(ConfigContext context, Properties properties);

    /**
     * 节点变化回调方法
     * @param key
     * @param originValue
     * @param newValue
     */
    void onChange(String key, String originValue, String newValue) throws ConfigurationException;

    /**
     * 新增节点回调方法 (应该用不到)
     * @param key
     * @param value
     */
    void onAdd(String key, String value);

    /**
     * 获取上下文
     * @return
     */
    ConfigContext getConfigContext();
}
